create table `book`(
    `id` varchar(20) not null default ''primary key comment '学生id',
    `name` varchar(20)not null default ''comment '学生姓名',
    `age` int  default null comment '学生年龄',
    `created` datetime not null default CURRENT_TIMESTAMP comment '创建时间'
)comment '学生测试表';
#删除表
drop  table `book`;
    #在什么什么之间用between
select
    id as 学号,name as 姓名,age as 年龄
         from book where age between 20 and 30;

#三种模糊查询 查 头、中、关键字
select  * from book where name like('熊%');
select  * from book where name like('_某%');
select  * from book where name like('%羊%');

#排序查询 升序 ASC 不写默认就是升序 降序DESC
select * from book order by age ;
#降序
select * from book order by age desc ;

#多表查询
select * from book,blog;  #这种写法有问题，会带出很多重复的数据
#会触发笛卡尔积 两个表会两两组合 相乘

#分页查询
select * from category;
select * from category limit 0,3; #索引0的话从1开始输出 后面跟着的3是每次输出限制3条为一页
select * from category limit 3,3;
select * from category limit 6,3;

#事务
#开启事务
begin;
delete from book where id=001;
#提交事务
commit ;
#回滚事务,如果提交了事务就回滚不了
#回滚事务一般用于，sql执行到一半已经有数据受影响了，然后没有提交，这时候就可以用回滚
rollback ;
#模拟报错
begin;
update book set age=age-2 where name='喜羊羊';
#错误提示.......放开注释可以打断执行模拟异常

update book set age=age+2 where name='光头强';

commit;

rollback;

SELECT@@autocommit;   #这个可以查看事务的提交状态 1为自动提交 0为手动提交事务



